// 设置axios的基础路径
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net';

// // 设置所有请求的 token 值, 和需求不相符，所以尽量使用拦截器
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('token');

// 请求拦截器 - 要求: 以 /my 开头的请求才添加 token 认证
axios.interceptors.request.use(function (config) {
    // 返回之前，书写逻辑 - 判断路径是否是 /my 开头
    //    indexOf()返回值为索引值，找不到返回 -1
    //    != -1   == 0   >= 0   > -1
    if (config.url.indexOf('/my/') != -1) {
        // 给config参数。配置请求头，Authorization
        config.headers['Authorization'] = localStorage.getItem('token');
    }
    // 返回参数 - return 一定要写到if语句外面，无论什么情况都要返回 config
    return config;
}, function (error) {
    // Promise对象特定语法;
    return Promise.reject(error);
});

// 响应拦截器 - 登录拦截，未登录或token失效会导致服务器返回 : 身份认证失败！
//     此种情况下， 我们需要把页面强行跳转到登录页。
axios.interceptors.response.use(function (response) {
    // 随意操作逻辑 -  报错信息中出现 身份认证失败！ 就跳转到登录页
    // console.log(response.data.message);
    if (response.data.message == '身份认证失败！') {
        // 页面跳转到登录页
        location.href = '/login.html';
        // 销毁token - token过期就没有必要存在了
        localStorage.removeItem('token');
    }
    // 返回响应信息 - 返回信息一定要写到if语句的外面
    return response;
}, function (error) {
    // Promise对象特定语法;
    return Promise.reject(error);
});

// 格式化如期
function dateFormat(str) {
    let dt = new Date(str);
    // 获取年月日，时分秒
    let y = dt.getFullYear();
    let m = padZero(dt.getMonth() + 1);
    let d = padZero(dt.getDate());

    let hh = padZero(dt.getHours());
    let mm = padZero(dt.getMinutes());
    let ss = padZero(dt.getSeconds());

    return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
}

// 补零函数
function padZero(n) {
    return n < 10 ? '0' + n : n;
}
